<template>
  <div class="member-rights-operation">
    <operation-title
      title="会员权益"
      :icon="TitleIcon"
    />
    <div class="divider"></div>
    <div class="func">
      <p class="attr">选择风格</p>
      <ul class="common-ul">
        <li :class="config.pageConfig.style == '1' ? 'active' : ''" @click="config.pageConfig.style = '1'">
          <img src="../../../../../../assets/app/other/style/rightstyle1.png" alt="">
        </li>
        <li :class="config.pageConfig.style == '2' ? 'active' : ''" @click="config.pageConfig.style = '2'">
          <img src="../../../../../../assets/app/other/style/rightstyle2.png" alt="">
        </li>
      </ul>

    </div>
    <div class="divider"></div>
    <div class="func">
      <p class="attr">标题</p>
      <div class="adjust-item">
        <span>文字</span>
        <el-input style="width:300px" v-model="config.pageConfig.rightsTitle"></el-input>
      </div>
      <div class="adjust-item">
        <span>颜色</span>
        <el-color-picker v-model="config.pageConfig.titleColor" />
        <span class="color-value">{{ config.pageConfig.titleColor }}</span>
      </div>
      <div class="adjust-item">
        <span>字号</span>
        <el-slider v-model="config.pageConfig.titleSize" :min="0" :max="50" show-input size="small" />px
      </div>

    </div>
    <div class="divider"></div>
    <div class="func">
      <p class="attr">选择颜色</p>
      <div class="adjust-item">
        <span>组件背景</span>
        <el-radio-group v-model="config.pageConfig.cptType">
          <el-radio label="1">背景色</el-radio>
          <el-radio label="2">背景图</el-radio>
        </el-radio-group>
      </div>
      <div class="adjust-item" v-show="config.pageConfig.cptType == 1">
        <span></span>
        <el-color-picker v-model="config.pageConfig.bgColor" />
        <span class="color-value">{{ config.pageConfig.bgColor }}</span>
      </div>
      <div class="add-item-input" v-show="config.pageConfig.cptType == 2">
        <p></p>
        <h4>建议图片宽度355px，高度120px</h4>
        <div class="upload-img" v-if="config.pageConfig.bgImg">
          <el-image style="width: 100%; height: 100%" :src="config.pageConfig.bgImg" fit="contain"></el-image>
          <div class="upload-img_cover">
            <Upload :model-value="fileList" file-path="act/" :limit="999" :show-file-list="false"
              @success="uploadSuccess">
              <el-button size="small" @click="currentType = 'bgImg'">替换</el-button>
            </Upload>
          </div>
        </div>
        <Upload v-else v-model="config.pageConfig.bgImg" file-path="act/" list-type="picture-card">
          <el-icon>
            <Plus />
          </el-icon>
        </Upload>
      </div>
      <div class="adjust-item">
        <span>文字颜色</span>
        <el-color-picker v-model="config.pageConfig.textColor" />
        <span class="color-value">{{ config.pageConfig.textColor }}</span>
      </div>
      <div class="adjust-item">
        <span style="font-weight:700">显示副标题</span>
        <el-switch v-model="config.pageConfig.showSubtitle" />
      </div>
    </div>
    <div class="divider"></div>
    <div class="func">
      <p class="attr">边距</p>
      <div class="adjust-item">
        <span>权益间距</span>
        <el-slider v-model="config.pageConfig.itemSpace" :min="0" :max="50" show-input size="small" />px
      </div>
      <div class="adjust-item">
        <span>上边距</span>
        <el-slider v-model="config.pageConfig.marginTop" :min="0" :max="50" show-input size="small" />px
      </div>
      <div class="adjust-item">
        <span>下边距</span>
        <el-slider v-model="config.pageConfig.marginBottom" :min="0" :max="50" show-input size="small" />px
      </div>
      <div class="adjust-item">
        <span>左右边距</span>
        <el-slider v-model="config.pageConfig.margin" :min="0" :max="50" show-input size="small" />px
      </div>
    </div>
    <div class="divider"></div>
    <div class="func">
      <p class="attr">圆角设置</p>
      <div class="adjust-item">
        <span>上圆角</span>
        <el-slider :min="0" :max="20" v-model="config.pageConfig.radiusTop" show-input size="small" />px
      </div>
      <div class="adjust-item">
        <span>下圆角</span>
        <el-slider :min="0" :max="20" v-model="config.pageConfig.radiusBottom" show-input size="small" />px
      </div>
    </div>

  </div>
</template>

<script lang="ts">

export default {
  name: "MemberRightsOperation",

};
</script>

<script setup lang="ts">

import TitleIcon from "@/assets/app/icon/memberrights.png";
import OperationTitle
  from "@/views/activity/actApp/components/default/operationComponents/operationTitle/OperationTitle.vue";

const config = defineProps({
  pageConfig: {
    type: Object,
    default: {
      style: 1, // 风格
      rightsTitle: "",//标题
      titleColor: "#FFFFFF",//标题颜色
      titleSize: 24,//标题字号
      cptType: "2", // 组件背景类型
      bgColor: "#FFFFFF",//背景色
      bgImg: "", // 背景图
      textColor: '#FFFFFF',//文字颜色
      showSubtitle: false,//显示副标题
      itemSpace: 10,//权益间距
      marginTop: 10,
      marginBottom: 10,
      margin: 10,
      paddingTop: 16,
      paddingLeft: 24,
      paddingRight: 12,
      radiusTop: 8,
      radiusBottom: 8,
    },
  },
});
let emits = defineEmits<{ (e: "changeStyle", configStyle: Object): void }>();
const currentType = ref('');

const dialogFormVisible = ref(false)
const styleList = ref(['1', '2'])
const list = ref([])

const fileList = ref([]);
const uploadSuccess = (value: any) => {
  config.pageConfig[currentType.value] = value.url;
};
watch(config.pageConfig, (val) => {
  emits("changeStyle", config.pageConfig);
});

</script>
<style lang="scss" scoped>
.style-div-container {
  display: flex;
  flex-direction: row;

  .style {
    cursor: pointer;

    .title {
      text-align: left;
      padding-bottom: 16px;
    }

    .list-box {
      display: flex;
      flex-wrap: wrap;
      // background-color: #f4f4f4;
      padding-top: 20px;

      .list-item {
        display: flex;
        flex-direction: column;
        justify-content: center;
        width: 20%;
        flex-shrink: 0;
        align-items: center;
        padding: 0 8px 16px;

        .item-icon {
          width: 54px;
          height: 54px;
          border-radius: 50%;
        }

        .item-name {
          color: #333;
          margin-top: 6px;
        }

        .item-cut {
          margin-top: 4px;
          color: #666;
          font-size: 12px;
        }
      }


    }

    .box2 {
      flex-wrap: nowrap;
      overflow: hidden;
    }
  }

  .style-div {
    width: 50%;
    // width: calc(33.3% - 40px);
    margin: 12px;
    background: #fff;
    text-align: center;

    img {
      display: block;
      max-width: 100%;
      max-height: 100%;
      margin-bottom: 10px;
    }
  }
}

.member-rights-operation {
  .title {
    padding: 8px 23px;
    overflow: hidden;
    border-bottom: 5px solid #f6f7f9;
    display: flex;
    position: relative;
    height: 50px;
    box-sizing: border-box;

    img {
      position: absolute;
      left: 0;
      top: -5px;
    }

    h5 {
      font-size: 16px;
      font-weight: 700;
      position: absolute;
      left: 70px;
      top: 0;
      line-height: 50px;
    }
  }

  .func {
    border-bottom: 5px solid #f6f7f9;
    padding: 20px 16px;
    font-size: 16px;

    .color-value {
      display: inline-block;
      width: 200px;
      text-align: left;
      margin-left: 5px;
    }

    .attr {
      line-height: 1;
      color: #47565d;
      font-weight: bolder;
      margin-bottom: 20px;
    }

    ul.common-ul {
      list-style: none;
      display: flex;
      align-items: center;
      justify-content: center;

      li {
        flex: 1;
        height: 30px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 4px 0 0 4px;
        border: 2px solid #ededed;
        border-collapse: collapse;

        &.active {
          border: 2px solid #fb6638;
        }

        img {
          max-width: 100% !important;
          max-height: 100% !important;
        }
      }
    }

    h4 {
      position: relative;
      padding: 8px 16px 8px 16px;
      border-radius: 6px;
      color: red;
      font-size: 16px;
      font-weight: 600;
      line-height: 22px;
      margin-bottom: 10px;
      border: 1px solid #d8e8fc;
      background-color: #e5f0fe;
      width: 170px;
      margin-right: 10px;
      margin-top: 10px;
    }

    div.adjust-item {
      display: flex;
      align-items: center;
      margin-top: 3px;
      margin-bottom: 10px;

      span {
        width: 80px;
        text-align: right;
        margin-right: 15px;
        color: #666;
      }

      :deep(.el-slider) {
        width: 240px;
        margin-right: 3px;
        margin-left: 15px;
      }

      :deep(.el-slider__runway.show-input) {
        margin-right: 15px;
      }

      :deep(.el-input-number) {
        width: 100px;
        background: #f4f3f7;
        border: 1px solid #f4f3f7;
      }

      .style-btn {
        width: 240px;
        height: 36px;
        font-size: 12px;
        line-height: 36px;
        text-align: center;
        background-color: #001E70;
        color: #fff;
        margin-right: 5px;
        cursor: pointer;
      }

      .style-word {
        font-size: 12px;
      }
    }

    .add-item {
      width: 100%;

      li {
        background: #f4f3f7;
        border-radius: 4px;
        padding: 10px 20px 10px 10px;
        color: #999;
        margin-top: 10px;
        margin-bottom: 20px;
        position: relative;
        display: flex;

        &.extra-li {
          justify-content: center;
        }

        .upload-img {
          width: 62px;
          height: 62px;
          margin-right: 10px;
          position: relative;

          :deep(.el-image) {
            width: 62px;
            height: 62px;
          }

          &:hover {
            .upload-img_cover {
              opacity: 1;
            }
          }

          .upload-img_cover {
            opacity: 0;
            position: absolute;
            transition: all 0.3s ease;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.7);
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: space-evenly;
          }
        }

        :deep(.el-upload-list) {
          width: 62px;
          height: 62px;
          margin-right: 10px;
        }

        :deep(.el-upload--picture-card) {
          width: 62px;
          height: 62px;
        }

        // img {
        //   width: 50px;
        //   height: 50px;
        //   line-height: 50px;
        //   margin-right: 10px;
        //   border: 1px dashed #ededed;
        //   text-align: center;
        //   color: #dad9d9;
        //   background-size: 100% 100%;
        //   background-repeat: no-repeat;
        //   float: left;
        //   position: relative;
        // }
        div.link-div {
          width: calc(100% - 80px);
          display: flex;
          align-items: center;
          background: #e8effc;
          border: 0;
          padding-left: 16px;
          cursor: pointer;
          position: relative;

          :deep(.el-icon) {
            margin-right: 10px;
          }

          :deep(.el-input) {
            font-size: 12px;
            height: 30px;
            width: calc(100% - 30px);
          }

          .close-btn {
            position: absolute;
            right: 5px;
          }
        }

        .sure-close {
          position: absolute;
          right: 5px;
          top: 5px;
          cursor: pointer;
        }
      }
    }
  }

  .add-item-input {
    display: flex;
    align-items: center;
    margin-bottom: 20px;

    >p {
      width: 77px;
      text-align: right;
      margin-right: 8px;
    }

    .upload-img {
      width: 62px;
      height: 62px;
      margin-right: 10px;
      position: relative;

      :deep(.el-image) {
        width: 62px;
        height: 62px;
      }

      &:hover {
        .upload-img_cover {
          opacity: 1;
        }
      }

      .upload-img_cover {
        opacity: 0;
        position: absolute;
        transition: all 0.3s ease;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 0, 0, 0.7);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: space-evenly;
      }
    }

    :deep(.el-upload-list) {
      width: 62px;
      height: 62px;
      margin-right: 10px;
    }

    :deep(.el-upload--picture-card) {
      width: 62px;
      height: 62px;
    }

    // img {
    //   width: 40px;
    //   height: 40px;
    // }
    :deep(.el-color-picker) {
      margin-right: 10px;
    }


  }

}
</style>
